import numpy as np
import matplotlib.pyplot as plt

# ------------ReLu---------------
# 方式一，使用分段求解，绘制函数图
x1 = np.linspace(0, 5, 20)
y1 = x1
x2 = np.linspace(-5, 0, 20)
y2 = np.zeros(x2.shape)

# 设置一个图像的整体大小
plt.figure(figsize=(10, 3))
ax1 = plt.subplot(1, 3, 1)
ax1.set_title("ReLu")
ax1.plot(x1, y1, 'r-')
ax1.plot(x2, y2, 'r-')

# ------------Tanh---------------
x3 = np.linspace(-5, 5, 20)
# 定义函数公式
y3 = (np.exp(x3) - np.exp(-x3)) / (np.exp(x3) + np.exp(-x3))
ax2 = plt.subplot(1, 3, 2)
ax2.set_title("Tanh")
ax2.plot(x3, y3, 'g--')

# ------------Circle---------------
a = 1
b = 2
c = 3
# 目的：将整个公式定义为 y = f(x) 这种形式
# 步骤1：获取隐含条件
x4 = np.linspace(a - c ** 0.5, a + c ** 0.5, 100)
# x4 = np.linspace(-5, 5, 100)
# 步骤2：获取y = f(x) 公式显示
m = (c - (x4 - a) ** 2) ** 0.5
y4_1 = m + b  # 上区间
y4_2 = -m + b  # 下区间
# 步骤3：绘图
ax3 = plt.subplot(1, 3, 3)
ax3.set_title("Circle")
ax3.plot(x4, y4_1, 'b-')
ax3.plot(x4, y4_2, 'b-')
plt.show()
